package edu.zut.pioneer.admin;


import edu.zut.pioneer.admin.domain.User;
import edu.zut.pioneer.base.controller.GenericController;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import java.util.HashMap;
import java.util.Map;

public class UserController extends GenericController<User, Long, UserManager> {

    public static final Logger logger = LogManager.getLogger(UserController.class.getName());

    UserManager userManager;


    @Autowired
    public void setUserManager(UserManager userManager) {
        this.userManager = userManager;
        this.manager = this.userManager;
    }


    @RequestMapping(value = "/findAll/{page}/{pageSize}", method = {RequestMethod.GET, RequestMethod.POST})
    public Map<String, Object> findAllUser(@PathVariable("page") int page, @PathVariable("pageSize") int pageSize) {
        Sort sort = Sort.by(Sort.Direction.DESC, "id");
        Pageable pageable = PageRequest.of(page, pageSize, sort);
        Page<User> list = userManager.findAll(pageable);
        HashMap<String, Object> map = new HashMap<>();
        map.put("number", list.getTotalElements());
        map.put("userList", list.getContent());
        logger.info("----------->" + list.getContent());
        //map集合转化为JSON字符串进行数据传输
        return map;
    }
}
